package compilador.sintactico;

import java.util.List;

import compilador.codigointermedio.Terceto;
import compilador.lexico.AnalizadorLexico;
import compilador.lexico.Error;
import compilador.lexico.TablaSimbolos;
import compilador.lexico.Token;

public class AnalizadorSintactico {
	Parser parser;
	String code;
	AnalizadorLexico al;
	
	
	public AnalizadorSintactico(String code){
		this.code = code;
		al = new AnalizadorLexico(code);
	}
	
	public void analizar(){
		parser = new Parser();
		@SuppressWarnings("unused")
		int result = parser.yyparse(al);
	}
	
	public List<String> getDeclaraciones(){
		List<String> decl;
		decl = parser.getDeclaraciones();
		//java.util.Collections.sort(decl);
		//return parser.getDeclaraciones();
		return decl;
	}
	
	public List<Error> getListErrores() {
		return al.getErrores();
	}
	
	public List<Token> getListToken(){
		return al.getListToken();
	}
	
	public TablaSimbolos getTablaSimbolos(){
		return al.getTablaSimbolos();
	}
	
	public List<Terceto> getTercetos(){
		return parser.getTercetos();
	}
	
}
